package resources;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;

import javax.swing.JFileChooser;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

import src.Main;
import src.Window;


/**
 * 
 * contem as ActionListener da classe Window
 *  *  
 * @author eklauberg
 *
 */
public class WindowActions implements ActionListener, DocumentListener {

	private Window window;
	
	public WindowActions(Window window) {
		this.window = window;
	}

	@Override
	public void actionPerformed(ActionEvent e) {

		if (e.getSource() == window.getBtnNovo()
				|| e.getSource() == window.getMntmNovo()) {
			/* NOVO */
			System.out.println("Novo - Não implementado...");
		} else if (e.getSource() == window.getBtnAbrir() || e.getSource() == window.getMntmAbrir()) {
			/* ABRIR  */
			window.getFerramentas().abrir();
		} else if (e.getSource() == window.getBtnSalvar() || e.getSource() == window.getMntmSalvar()) {
			/* SALVAR */
			window.getFerramentas().salvar();
		} else if (e.getSource() == window.getMntmSalvarComo()) {
			/* SALVAR COMO  */
			System.out.println("SalvarComo - Não implementado...");
		} else if (e.getSource() == window.getBtnRecortar()	|| e.getSource() == window.getMntmRecortar()) {
			/* RECORTAR */
			window.getFerramentas().recortar();
		} else if (e.getSource() == window.getBtnCopiar() || e.getSource() == window.getMntmCopiar()) {
			/* COPIAR */
			window.getFerramentas().copiar();
		} else if (e.getSource() == window.getBtnColar() || e.getSource() == window.getMntmColar()) {
			/* COLAR */
			window.getFerramentas().colar();
		} else if (e.getSource() == window.getBtnX()) {
			/* X */
			System.out.println("X - Não implementado...");
		} else if (e.getSource() == window.getBtnDesfazer()) {
			/* DESFAZER */
			System.out.println("Desfazer - Não implementado...");
		} else if (e.getSource() == window.getMntmSair()) {
			/* SAIR */
			System.out.println("Sair - Não implementado...");
		} else if (e.getSource() == window.getMntmExecutar()) {
			/* EXECUTAR */
			System.out.println("Executar - Não implementado...");
		} else if (e.getSource() == window.getMntmCompilar()) {
			/* COMPILAR */
			window.getTxtrConsole().setText("");
			InputStream stream = new ByteArrayInputStream(window.getTxtCodigo()
					.getText().getBytes());
			Compilador compilador = new Compilador(stream);
			compilador.compilar();
		}
	}

	@Override
	public void changedUpdate(DocumentEvent e) {
		Document.setModificado(true);
		System.out.println("documento alterado");
	}

	@Override
	public void insertUpdate(DocumentEvent e) {
		Document.setModificado(true);
		System.out.println("documento alterado");
	}

	@Override
	public void removeUpdate(DocumentEvent e) {
		Document.setModificado(true);
		System.out.println("documento alterado");
	}

}
